<?php

// +----------------------------------------------------------------------
// | WeChatDeveloper
// +----------------------------------------------------------------------
// | 版权所有 2014~2018 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: http://think.ctolog.com
// +----------------------------------------------------------------------
// | 开源协议 ( https://mit-license.org )
// +----------------------------------------------------------------------
// | github开源项目：https://github.com/zoujingli/WeChatDeveloper
// +----------------------------------------------------------------------

namespace Itdashu\SwoftThirdPartyService\Service\WePay;

use Itdashu\SwoftThirdPartyService\Service\WeChat\Contracts\BasicWePay;

/**
 * 微信红包支持
 * Class Redpack
 * @package WePay
 */
class Redpack extends BasicWePay
{
  /**
   * 发放普通红包
   * @param array $options
   * @return array
   * @throws \Itdashu\SwoftThirdPartyService\Service\WeChat\Exceptions\InvalidResponseException
   */
  public function create(array $options): array
  {
    $this->params->offsetUnset('appid');
    $this->params->set('wxappid', $this->config->get('appid'));
    $url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack';
    return $this->callPostApi($url, $options, true, 'MD5', false);
  }

  /**
   * 发放裂变红包
   * @param array $options
   * @return array
   * @throws \Itdashu\SwoftThirdPartyService\Service\WeChat\Exceptions\InvalidResponseException
   */
  public function groups(array $options): array
  {
    $this->params->offsetUnset('appid');
    $this->params->set('wxappid', $this->config->get('appid'));
    $url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/sendgroupredpack';
    return $this->callPostApi($url, $options, true, 'MD5', false);
  }

  /**
   * 查询红包记录
   * @param $mchBillNo
   * @return array
   * @throws \Itdashu\SwoftThirdPartyService\Service\WeChat\Exceptions\InvalidResponseException
   */
  public function query($mchBillNo): array
  {
    $this->params->offsetUnset('wxappid');
    $this->params->set('appid', $this->config->get('appid'));
    $url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/gethbinfo';
    return $this->callPostApi($url, ['mch_billno' => $mchBillNo, 'bill_type' => 'MCHT'], true, 'MD5', false);
  }

}